Recently, technological advanced machine learning techniques have been utilized in numerous customer-centric applications. One of such application is a human-machine interaction system wherein a machine converses with a human in natural language. Typically, such human-machine interaction system has been implemented as chatbots. The chatbots implemented today are mostly built for question and answering tasks. However, it has been observed that there are issues with a proper functioning/performance of the these chatbots. For example, these chatbots often lose context of conversation and tend to ask the same questions or respond with same answers repeatedly. Further, these chatbots do not memorize conversations and the end-users well. Furthermore, some of the chatbots are built for specific domains and hence do not perform well in the other domains. This is because the underlying system controlling these chatbots fails to provide an effective and/or efficient way to access large-scale memory of the system's understanding about the world and the end-users (humans).